import axios from 'axios';
import QS from 'qs';
import { Toast } from 'vant';

// 创建 axios 实例
const service = axios.create({
    baseURL: process.env.VUE_APP_API_BASE_URL, // 设置基础URL
    timeout: 1000 * 60 * 3, // 设置超时时间
    transformRequest: [function (data) {
        // 对发送到服务器的数据进行处理，例如序列化
        return QS.stringify(data);
    }],
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded',
    }
});
/**
* get方法，对应get请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function get(url, params){
    return new Promise((resolve, reject) =>{
        axios.get(url, {
            params: params
        }).then(res => {
            resolve(res.data);
        }).catch(err =>{
            reject(err.data)
        })
    });}

/**
 * post方法，对应post请求
 * @param {String} url [请求的url地址]
 * @param {Object} params [请求时携带的参数]
 */
export function post(url, params) {
    return new Promise((resolve, reject) => {
        axios.post(url, QS.stringify(params))
            .then(res => {
                resolve(res.data);
            })
            .catch(err =>{
                reject(err.data)
            })
    });
}
// // 请求拦截器
// service.interceptors.request.use(config => {
//     // 请求发送前的操作，如统一的身份验证
//     if (store.getters.token) {
//         config.headers.Authorization = `Bearer ${store.getters.token}`;
//     }
//     return config;
// }, error => {
//     // 错误处理
//     return Promise.reject(error);
// });

// 响应拦截器
service.interceptors.response.use(response => {
    // 响应成功后的操作
    if (response.data.code !== 200) {
        Toast.fail(`错误码：${response.data.code}，错误信息：${response.data.message}`);
        return Promise.reject(new Error(response.data.message || 'Error'));
    }
    return response.data;
}, error => {
    // 错误处理
    Toast.fail('抱歉，请求失败！');
    return Promise.reject(error);
});

export default service;